package com.xuecheng.content.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.qo.QueryCourseModel;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import com.xuecheng.content.entity.CourseBase;

/**
 * <p>
 * 课程基本信息 服务类
 * </p>
 *
 * @author itcast
 * @since 2021-12-07
 */
public interface CourseBaseService extends IService<CourseBase> {

//    List<CourseBase> queryAll();

    /**
     * 分页查询条件课程信息    外加一个审核查询
     * @param params PageRequestParams 封装分页信息
     * @param model QueryCourseModel 封装课程查询条件信息
     * @param companyId 机构Id
     * @return 返回分页封装类PageVo给web
     */
    PageVO queryCourseList(PageRequestParams params, QueryCourseModel model,Long companyId);

    /**
     * 新增课程基本信息
     * @param courseBaseDTO CourseBaseDTO vo实体类接收前端数据后转换为dto实体类 用来封装新增的数据
     * @return 返回DTO实体类类型给web
     */
    CourseBaseDTO creatCourse(CourseBaseDTO courseBaseDTO);

    /**
     * 根据id回显修改课程信息
     * @param courseBaseId 需要修改的课程信息Id
     * @return 返回DTO实体类给web
     */
    CourseBaseDTO updatequeryById(Long courseBaseId,Long companyId);

    /**
     * 修改课程信息
     * @param courseBaseDTO 封装的DTO实体类
     * @return 返回DTO实体类信息给web
     */
    CourseBaseDTO updateCourseBase(CourseBaseDTO courseBaseDTO);

    /**
     * 根据ID删除课程信息
     * @param courseBaseId 课程信息
     * @param companyId 机构id
     */
    void deleteCourseBase(Long courseBaseId, Long companyId);

    /**
     * 审核状态：1.提交模式为“已提交”才能审核
     * @param courseId 课程基础id
     * @param companyId 机构id
     */
    void updateAuditStatus(Long courseId, Long companyId);

    /**
     * 审核状态同意或拒绝
     * @param dto 封装审核实体类
     */
    void selectOrUpdateAuditStatus(CourseBaseDTO dto);
}
